import { defineStore } from 'pinia'
import config from '@/config'

export const useUseStore = defineStore({
  id: 'user',
  state: () => {
    return {
      isLoginPage: false,
      token: uni.getStorageSync('token'),
    }
  },
  actions: {
    // 去登录
    goLogin() {
      // 已经在登录页面了，防止多次打开
      if (this.isLoginPage) return

      this.openLoginPage()

      uni.navigateTo({
        url: config.loginPage,
      })
    },

    // 登录成功
    loginSuccess(token, goUrl) {
      this.token = token
      uni.setStorageSync('token', token)

      if (goUrl) {
        uni.reLaunch({
          url: decodeURIComponent(goUrl),
        })
      } else {
        uni.navigateBack()
      }
    },

    // 进入登录页面
    openLoginPage() {
      this.isLoginPage = true
    },

    // 退出登录页面
    exitLoginPage() {
      this.isLoginPage = false
    },

    // 退出
    logout() {
      uni.clearStorage()
      this.token = null
    },
  },
})
